//
//  eums.swift
//  swift_ example
//
//  Created by 魏熙美 on 2020/2/21.
//  Copyright © 2020 魏熙美. All rights reserved.
//

import Foundation

// 枚举是值类型

// 定义枚举
enum SomeEnueration {
    // 这里的枚举没有任何值，值就是它本身
    
    case north
    case south
    case east
    case west
}

// 定义枚举类型为 Int
enum SomeNum: Int {
    // 这里枚举的值时数字
    // 数字依次类推
    case one = 1
    case thow
}

// 定义枚举可以包含值
enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}

// 可遍历枚举
enum Beverage: CaseIterable {
    case coffee, tea, juice
}

// 使用上面的枚举
func createIntiEnums() {
    // 获取枚举
    let someEnuerValue = SomeEnueration.east
    print("枚举的值：", someEnuerValue.hashValue)
    
    let someNumValue = SomeNum.one
    print("枚举的值：", someNumValue.hashValue)
    
    let upc = Barcode.upc(1, 22, 555, 999)
    
    switch someEnuerValue {
    case .east:
        print("枚举是：SomeNum.east")
    case .north:
        print("枚举是：SomeNum.north")
    default:
        print("枚举类型不存在！")
    }
    
    switch upc {
    case .upc(1, 22, 555, 999):
        print("枚举是：Barcode.upc")
    default:
        print("枚举不存在！")
    }

    
    // 遍历可遍历枚举
    for itrm in Beverage.allCases {
        print(itrm)
    }
    
}

